基于动态提前退出的预训练模型推理加速简介
©PaperWeekly 原创 · 作者 | 李磊
单位 | 北京大学硕士生
研究方向 | 自然语言处理
动态提前退出
Dynamic Early Exiting(动态提前退出)的核心是根据样本的难度来匹配相应的计算量,这一思想在之前的不少文献中都已有体现,例如在 RNN 中根据样本难度决定所需的时间步(ACT),CV 领域的 Shallow-Deep Network/ 动态深度网络等。将这一思想应用到如 BERT 的预训练的模型上,我们可以把模型的 Layer 视作是一个固定的时间步/深度,则 BERT(base)实际上对每个样本都同等地执行了 12 层的前向计算。
然而,样本之间是普遍存在难度差异的,对于一些比较简单的样本,或许前几层的 BERT Layer 表示就足以支撑模型进行正确的预测,则后续的计算都可以认为是冗余的,从而可以省去以提升推理的速度。
最后则就是中间的这些分类器应该如何训练,DeeBERT 采用的是两阶段的方案,第一个阶段就是简单的 Fine-tuning,训练模型每一层的表示以及最后一层的分类器;第二阶段则固定住中间层的参数以及最后分类器,利用 CE loss 训练中间层的分类器,从而优化中间分类器的分类结果。
无独有偶,同样是 ACL 2020,还有两篇也是基于动态退出的想法进行 BERT 推理加速的文章,这里对其简要介绍如下:
FastBERT [5] :和 DeeBERT 不同之处在于其中间层的分类器用了更加复杂的基于 attention 的分类器,并且在训练中间分类器的时候增加了额外的 self-attention 目标,使得中间层的输出和最后一层分类器的输出保持一致。文章在一种文本分类数据集能够在 ~10x 加速比的情况下保持原始模型的性能。
后续有不少工作尝试对 Dynamic Early Exiting 的框架进行探究和改进,CascadeBERT [6] 总结了 Dynamic Early Exiting 在高加速比下,即大部分样本都在浅层退出时,会遇到的两个瓶颈问题:(1)退出决策不鲁棒,即样本难度和中间分类器的分类置信度并不匹配;(2)浅层表示具备的信息不够充分。
这样的方案简单并且有效,相对于 DeeBERT 都取得了比较明显提升,但因为在设定退出条件的时候需要设置的一致预测层数只能是整数,大大地限制了其加速比的取值范围。类似地,ELBERT [8] 在连续多层分类器给出某个类别上单调递增的概率之后触发退出。
动态提前退出不仅仅可以应用在简单的分类任务上,不少研究也尝试将其拓展到更加不同的任务上。
BERxiT [12] 利用一个额外学习 learn-to-exit 模块,根据当前的样本表示给出一个是否要退出的决策,这一就可以将这一思想应用到回归任务上。
更多相关的 paper 可以参考复旦大学博士生孙天祥同学整理的 Paper List:
https://github.com/txsun1997/awesome-early-exiting
我们也梳理了和预训练模型效率相关的 Paper List:
https://github.com/TobiasLee/Awesome-Efficient-PLM
包括剪枝(Pruning)、知识蒸馏(Knowledge Distillation)、量化(Quantization)等,也欢迎大家 Star。
参考文献
[1] Adaptive Computation Time for Recurrent Neural Networks. Preprint 2016
[2] Shallow-Deep Networks: Understanding and Mitigating Network Overthinking. ICML 2019
[3] DeeBERT: Dynamic Early Exiting for Accelerating BERT Inference. ACL 2020.
[4] The Right Tool for the Job: Matching Model and Instance Complexities. ACL 2020.
[5] FastBERT: a Self-distilling BERT with Adaptive Inference Time. ACL 2020.
[6] CascadeBERT: Accelerating Inference of Pre-trained Language Models via Calibrated Complete Models Cascade. Findings of EMNLP 2021.
[7] BERT Loses Patience: Fast and Robust Inference with Early Exit. NeurIPS 2020.
[8] ELBERT: Fast Albert with Confidence-Window Based Early Exit. Preprint 2021.
[9] Early Exiting with Ensemble Internal Classifiers. Preprint May 2021.
[10] LeeBERT: Learned Early Exit for BERT with Cross-Level Optimization. ACL 2021.
[11] A Global Past-Future Early Exit Method for Accelerating Inference of Pre-trained Language Models. NAACL 2021.
[12] BERxiT: Early Exiting for BERT with Better Fine-Tuning and Extension to Regression. EACL 2021.
[13] Accelerating BERT Inference for Sequence Labeling via Early-Exit. ACL 2021
特别鸣谢
感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧